[TDR Generic表] [MySQL协议兼容接口] 乐观锁
1. 属性说明
多步操作是数据库访问中的常见场景,如:先查询一条记录,然后在本地进行处理,最后写回数据库。由于TcaplusDB不支持事务,无法保证多步操作的原子性,因此TcaplusDB通过记录的版本号属性实现了一个简单的乐观锁功能,解决多步操作的原子性问题。
记录版本号是TcaplusDB的内置字段,对用户只读,用__version__
表示。当插入一条新记录时,它的版本号为1,每次更新记录时,记录的版本号都会自动加1。
2. 准备工作
参见准备工作文档,完成mysql_table
表的创建,并使用MySQL Client成功连接到TcaplusDB。
3. 示例SQL
-- 假设这里查询到的记录版本号是6
SELECT __version__, v1, v2 FROM mysql_table WHERE k1=1 AND k2=2 AND k3='one';
/*
* do something
*/
-- 如果更新语句成功执行则记录版本号变为7
UPDATE mysql_table SET v1=1, v2=2 WHERE k1=1 AND k2=2 AND k3='one' AND __version__=6;
4. 常见问题
详见错误码含义和处理方法。
5. 其它参考文档
无